/*
 * @Author: sdorein sdorein@163.com
 * @Date: 2024-07-31 16:49:21
 * @LastEditors: sdorein sdorein@163.com
 * @LastEditTime: 2024-07-31 17:56:53
 * @FilePath: \vite-as-editor\src\utils\upload.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
// 导入cos-js-sdk-v5模块
import COS from 'cos-js-sdk-v5';

// 创建COS实例
const cos = new COS({
  SecretId: 'AKIDzmJbcMozu2tTmoZ3FBpCI7fwxjDRO4Tb',
  SecretKey: 'sTptgCRP5UhcHfoiKfjWyEEzUjiRvA9s',
});

// 定义上传文件的方法
interface UploadFileParams {
  file: File; // 假设file是一个File对象
}

interface UploadFileResult {
  url: string; // 上传后的文件URL
}

/**
 * 腾讯云COS上传文件方法
 * @param {UploadFileParams} params - 包含文件对象的参数
 * @returns {Promise<UploadFileResult>} - 返回一个包含上传后文件URL的Promise
 */
export const uploadCOS = ({ file }: UploadFileParams): Promise<UploadFileResult> => {
  return new Promise((resolve, reject) => {
    if (file) {
      cos.putObject(
        {
          Bucket: 'git-1304113371', // 存储桶名称
          Region: 'ap-nanjing', // 存储桶所在地域
          Key: file.name, // 文件名
          StorageClass: 'STANDARD', // 上传模式
          Body: file, // 上传的文件对象
          onProgress: (progressData) => {
            // 上传进度回调
            console.log(JSON.stringify(progressData));
          },
        },
        (err, data) => {
          if (data && data.statusCode === 200) {
            resolve(`https://${data.Location}`);
          }
          if (err) reject(err);
        }
      );
    }
  });
};